home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 2002-10-03 | 138.8 KB | 2,706 lines
iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) NNNNAAAAMMMMEEEE iiiillllIIIImmmmaaaaggggeeee - base class for the ImageVision Library toolkit IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM ilLink HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE #include <il/ilCdefs.h> CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN ilImage is the base class for the ImageVision Library (IL) toolkit. All IL image objects are derived from ilImage either directly or indirectly. The ilImage base class abstracts the general concept of an image by defining variables and functions common to all images. It defines image parameters (e.g. size, data type), and provides access functions to query and set them. It also provides functions to access image data. ilImage is derived from ilLink so that images can be chained together, which allows the output of one image operation to become the input to another. ilImage thus defines a common Application Program Interface (API). This means that, for example, image data can be obtained from any image object by calling iiiillllGGGGeeeettttTTTTiiiilllleeee() UUUUssssiiiinnnngggg iiiillllIIIImmmmaaaaggggeeee ilImage is intended to be used as a base class for deriving new types of images. Because most of the image data access virtuals return the status ilUNSUPPORTED, it is not useful to directly construct an ilImage object. However, a pointer to an ilImage can be declared to reference an image of unknown derivation. The ilImage class provides protected and public member functions. The protected functions provide convenient services to derived classes, (particularly for initializing and resetting an image's attributes) while the public functions form the API. QQQQuuuueeeerrrryyyyiiiinnnngggg aaaannnndddd SSSSeeeettttttttiiiinnnngggg IIIImmmmaaaaggggeeee AAAAttttttttrrrriiiibbbbuuuutttteeeessss The size of an image in the _x, _y, _z and _c dimensions can be retrieved using the function, iiiillllGGGGeeeettttSSSSiiiizzzzeeee(). In a typical 2-D image, z is 1 and the number of channels (c) per pixel is 3 (red, green and blue, for example). The image size is stored in a data object called iflSize. The size of the image can be set using the function, iiiillllSSSSeeeettttSSSSiiiizzzzeeee(). The data type of the pixel channels can be retrieved using the function, iiiillllGGGGeeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(). It returns an enumerated type called _i_f_l_D_a_t_a_T_y_p_e, which has members _i_f_l_C_h_a_r, _i_f_l_U_C_h_a_r, _i_f_l_F_l_o_a_t, and so forth. The data type can be set by passing an iflDataType to the member function, iiiillllSSSSeeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(). The pixel channel order can be queried and set using iiiillllGGGGeeeettttOOOOrrrrddddeeeerrrr() and iiiillllSSSSeeeettttOOOOrrrrddddeeeerrrr(), respectively. This information is indicated with the enumerated type, _i_f_l_O_r_d_e_r. _i_f_l_O_r_d_e_r has members _i_f_l_I_n_t_e_r_l_e_a_v_e_d, PPPPaaaaggggeeee 1111 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) _i_f_l_S_e_q_u_e_n_t_i_a_l and _i_f_l_S_e_p_a_r_a_t_e, which indicate how the pixel components are stored. The orientation of an image can be queried and set using iiiillllGGGGeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn() and iiiillllSSSSeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(), respectively. The orientation of an image is specified using the enumerated type, _i_f_l_O_r_i_e_n_t_a_t_i_o_n. An orientation of _i_f_l_L_o_w_e_r_L_e_f_t_O_r_i_g_i_n, for example, means that the origin of the image is displayed in the lower left corner of the window. The color model of an image can be queried and set using iiiillllGGGGeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll() and iiiillllSSSSeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll() functions, respectively. The color model can be one of the enumerated iflColorModel types. A color map can also be associated with an ilImage. The color map can be queried and set using the iiiillllGGGGeeeettttCCCCoooolllloooorrrrmmmmaaaapppp(), iiiillllGGGGeeeettttCCCCoooolllloooorrrrmmmmaaaappppPPPPttttrrrr and iiiillllSSSSeeeettttCCCCoooolllloooorrrrmmmmaaaapppp() functions, respectively. The color map is defined by using an iflColormap object. In general, for each image attribute there are access functions to set or get the associated member variables in class ilImage. AAAAcccccccceeeessssssssiiiinnnngggg IIIImmmmaaaaggggeeee DDDDaaaattttaaaa Image data can be accessed as pixels or as a rectangular region of arbitrary size called a tile. Both 2-D and 3-D tile access functions are provided. The virtual access functions present a queued request model, which allows an application to issue non-blocking requests for image I/O and later inquire the status and/or wait for the operation to complete. The queued model also provides derived classes with the "hooks" needed to automatically distribute operations across multiple processors. These queued functions are distinguished by the prefix 'q' on the function name. For convenience, there are access functions which do wait for their operation to complete, hiding the details of the queued model. There are several different functions to read image data, all based on iiiillllQQQQGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(). Similarly, there are several different functions to write image data based on iiiillllQQQQSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(). Two fast-paths called iiiillllQQQQCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg() and iiiillllQQQQCCCCooooppppyyyyTTTTiiiilllleeee3333DDDD() are available for copying a tile from another ilImage. When calling the base functions listed above, the caller must specify the origin (x, y, z) and size (nx, ny, nz) of the desired tile. For 2-D operations, z is set to 0 and nz is set to 1. For pixel operations, nx, ny and nz are set to 1. An object called iflConfig, is used to specify the configuration (that is, data type, order, number of channels and so forth) of the desired tile. If required, the image data is converted to a specified configuration while getting a tile, or converted from a specified configuration to that of the image while setting a tile. CCCChhhhaaaaiiiinnnniiiinnnngggg IIIImmmmaaaaggggeeeessss PPPPaaaaggggeeee 2222 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) Images can be chained together, allowing the output from one image operation to become the input to another image operation without an intermediate buffer. Each image can have multiple parents (inputs) and multiple children (outputs). In addition to the functions inherited from _i_l_L_i_n_k, several functions such as iiiillllSSSSeeeettttIIIInnnnppppuuuutttt(), iiiillllAAAAddddddddIIIInnnnppppuuuutttt() and iiiillllRRRReeeemmmmoooovvvveeeeIIIInnnnppppuuuutttt() are also provided to manage the input list. Inputs are usually added to an image in its constructor, although the input list can be manipulated after the image has been created. The power of chaining is fully realized with image operators (see the ilOpImg man page), which can be chained together to perform complex image processing operations. Chaining also allows a single image to be an input to multiple output operators. CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY DDDDeeeessssttttrrrruuuuccccttttoooorrrr void ilImageDelete(ilImage *img) MMMMaaaannnniiiippppuuuullllaaaattttiiiinnnngggg iiiimmmmaaaaggggeeee iiiinnnnppppuuuuttttssss int ilGetNumInputs(ilImage *img) ilStatus ilSetInput(ilImage *img, ilImage *inimg, int idx) ilStatus ilAddInput(ilImage *img, ilImage *inimg) ilImage *ilGetInput(ilImage *img, int idx) ilStatus ilRemoveInput(ilImage *img, int idx) ilImage* ilGetDirectInput(ilImage *obj, int idx) SSSSttttoooorrrriiiinnnngggg aaaannnndddd rrrreeeettttrrrriiiieeeevvvviiiinnnngggg 3333DDDD iiiimmmmaaaaggggeeee ddddaaaattttaaaa ilStatus ilGetSubTile3D(ilImage *img, int x, int y, int z, int nx, int ny, int nz, void *data, int dx, int dy, int dz, int dnx, int dny, int dnz, ilConfig *config) ilStatus ilQGetSubTile3D(ilImage *obj, ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, void** data, int dx, int dy, int dz, int dnx, int dny, int dnz, const ilConfig* config, ilMpManager** pMgr) PPPPaaaaggggeeee 3333 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ilStatus ilSetSubTile3D(ilImage *img, int x, int y, int z, int nx, int ny, int nz, const void *data, int dx, int dy, int dz, int dnx, int dny, int dnz, ilConfig *config) ilStatus ilQSetSubTile3D(ilImage *obj, ilMpNode* parent, int x, int y, int z, int nx, nt ny, int nz, void* data, int dx, int dy, int dz, int dnx, int dny, int dnz, const ilConfig* config, ilMpManager** pMgr) ilStatus ilCopyTileCfg(ilImage *img, int x, int y, int z, int nx, int ny, int nz, ilImage *other, int ox, int oy, int oz, ilConfig *config) ilStatus ilQCopyTileCfg(ilImage *obj, ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, ilImage* other, int ox, int oy, int oz, const ilConfig* config, ilMpManager** pMgr) ilStatus ilFillTile3D(ilImage *img, int x, int y, int z, int nx, int ny, int nz, void *data, ilConfig *config, iflTile2Dint *fillMask) ilStatus ilQFillTile3D(ilImage *obj, ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, const void* data, const ilConfig* config, const iflTile3Dint* fillMask, ilMpManager** pMgr) ilStatus ilImageFillTileRGB(ilImage *obj, int x, int y, int z, int nx, int ny, int nz, float red, float green, float blue, const iflTile3Dint* fillMask, iflOrientation orientation) ilStatus ilQFillTileRGB(ilImage *obj, ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, float red, float green, float blue, const iflTile3Dint* fillMask, iflOrientation orientation, ilMpManager** pMgr) ilStatus ilCopyTile3D(ilImage *img, int x, int y, int z, int nx, int ny, int nz, ilImage *other, int ox, int oy, int oz, int *chanList) ilStatus ilCopy(ilImage *img, ilImage *from) PPPPaaaaggggeeee 4444 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ilStatus ilGetTile3D(ilImage *img, int x, int y, int z, int nx, int ny, int nz, void *data, ilConfig *config) ilStatus ilImageQGetTile3D(ilImage *obj, ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, void** data, const ilConfig* config, ilMpManager** pMgr) ilStatus ilSetTile3D(ilImage *img, int x, int y, int z, int nx, int ny, int nz, const void *data, ilConfig *config) ilStatus ilImageQSetTile3D(ilImage *obj, ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, void* data, const ilConfig* config, ilMpManager** pMgr) ilStatus ilGetPixel3D(ilImage *img, int x, int y, int z, iflPixel *pix) ilStatus ilSetPixel3D(ilImage *img, int x, int y, int z, iflPixel *pix) SSSSttttoooorrrriiiinnnngggg aaaannnndddd rrrreeeettttrrrriiiieeeevvvviiiinnnngggg 2222----DDDD iiiimmmmaaaaggggeeee ddddaaaattttaaaa ilStatus ilGetTile(ilImage *img, int x, int y, int nx, int ny, void *data, ilConfig *config) ilStatus ilSetTile(ilImage *img, int x, int y, int nx, int ny, const void *data, ilConfig *config) ilStatus ilGetSubTile(ilImage *img, int x, int y, int nx, int ny, void *data, int dx, int dy, int dnx, int dny, ilConfig *config) ilStatus ilSetSubTile(ilImage *img, int x, int y, int nx, int ny, const void *data, int dx, int dy, int dnx, int dny, ilConfig *config) ilStatus ilCopyTile(ilImage *img, int x, int y, int nx, int ny, ilImage *other, int ox, int oy, int *chanList) ilStatus ilFillTile(ilImage *img, int x, int y, int nx, int ny, void *data, ilConfig *config, iflTile2Dint *fillMask) ilStatus ilGetPixel(ilImage *img, int x, int y, iflPixel *pix) ilStatus ilSetPixel(ilImage *img, int x, int y, iflPixel *pix) PPPPaaaaggggeeee 5555 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) DDDDaaaattttaaaa aaaacccccccceeeessssssss ssssuuuuppppppppoooorrrrtttt ilStatus ilClipTile(ilImage *img, int *x, int *y, int *z, int *nx, int *ny, int *nz, int includeBorder) ilStatus ilClipTileAsTile(ilImage *obj, iflTile3Dint* t, int includeBorder) ilStatus ilClipTileFloat(ilImage *obj, float *x, float *y, float *z, float *nx, float *ny, float *nz, int includeBorder) ilStatus ilClipTileFloatAsTile(ilImage *obj, iflTile3Dfloat* t, int includeBorder) ilStatus ilConfigureRetainedCacheImage(ilImage *obj, const iflTile3Dint* tile, int c, int nc-1, int* chans, float minCacheBudget.05, float maxCacheBudget, size_t* retainedFileSize) ilImageTile* ilGetInputTileRequirement(ilImage *obj, const iflTile3Dint* tile, int c, int nc, int* chans, int* pageSetCount) void ilGetStrides(ilImage *obj, int* xs, int* ys, int* zs, int* cs, int nx, int ny, int nz, int nc, iflOrder ord) QQQQuuuueeeerrrryyyyiiiinnnngggg aaaabbbboooouuuutttt iiiimmmmaaaaggggeeee pppprrrrooooppppeeeerrrrttttiiiieeeessss void ilGetDimensions(ilImage* img, iflSize* size) int ilGetXsize(ilImage *img) int ilGetYsize(ilImage *img) int ilGetZsize(ilImage *img) int ilGetCsize(ilImage *img) int ilGetNumChans(ilImage *img) int ilGetWidth(ilImage *img) int ilGetHeight(ilImage *img) void ilGetSize(ilImage *img, iflSize *sz) iflSize* ilGetSizePtr(ilImage *img) iflDataType ilGetDataType(ilImage *img) iflOrder ilGetOrder(ilImage *img) iflOrientation ilGetOrientation(ilImage *img) void ilGetConfig(ilImage *img, ilConfig* cfg) iflColorModel ilGetColorModel(ilImage *img) iflCompression ilGetCompression(ilImage *img) void ilGetFill(ilImage *img, iflPixel *pixel) double ilGetFillValue(ilImage *img, int c) ilStatus ilGetColormap(ilImage *img, iflColormap *cmap) iflColormap* ilGetColormapPtr(ilImage *img) int ilGetMaxColormapLevels(ilImage *obj) PPPPaaaaggggeeee 6666 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) int ilGetPageSizeBytes(ilImage *img) size_t ilGetPageSizeXY(ilImage *img, int *nx, int *ny) size_t ilGetPageSize(ilImage *img, int *nx, int *ny, int *nz, int *nc) size_t ilGetPageSizeStruct(ilImage *img, iflSize *pageSize) size_t ilGetMappedPageSize(ilImage *img, iflSize *pageSize, iflOrientation ori) size_t ilGetPageDimensions(ilImage *img, iflSize *pageSize) int ilGetPageSizeX(ilImage *img) int ilGetPageSizeY(ilImage *img) int ilGetPageSizeZ(ilImage *img) int ilGetPageSizeC(ilImage *img) int ilGetPageSizePix(ilImage *img) int ilGetPageSizeVal(ilImage *img) void ilGetPageDelta(ilImage *img, int *nx, int *ny, int *nz, int *nc) void ilGetPageDeltaStruct(ilImage *img, iflXYZCint& delta) void ilGetPageBorder(ilImage *img, iflXYZint *border) iflXYZint* ilGetPageBorderPtr(ilImage *obj) int ilGetPageBorderX() int ilGetPageBorderY() int ilGetPageBorderZ() void ilGetPageCounts(ilImage *obj, int* nx, int* ny, int* nz, int* nc) void ilGetPageIndices(ilImage *obj, int x, int y, int z, int c, int* ix, int* iy, int* iz, int* ic) ilStatus ilGetPageOrigin(int x, int y, int z, int c, int *px, int *py, int *pz, int *pc) ilStatus ilGetPageOriginStruct(const iflXYZCint *pos, iflXYZCint *org) int ilGetPageOriginX(int x) int ilGetPageOriginY(int y) int ilGetPageOriginZ(int z) int ilGetPageOriginC(int c) int ilGetPriority(ilImage *img) int ilHasPageBorder(ilImage *img) int ilIsIntegral(ilImage *img) int ilIsSigned(ilImage *img) int ilIsWritable() SSSSeeeettttttttiiiinnnngggg iiiimmmmaaaaggggeeee pppprrrrooooppppeeeerrrrttttiiiieeeessss ilStatus ilSetColorModel(ilImage *img, iflColorModel c) ilStatus ilSetOrientation(ilImage *img, iflOrientation spc) ilStatus ilSetDataType(ilImage *img, iflDataType dtype) ilStatus ilSetCompression(ilImage *img, iflCompression c) ilStatus ilSetFill(ilImage *img, iflPixel *pixel) ilStatus ilSetFillValue(ilImage *img, double val, int c) ilStatus ilSetFillRGB(ilImage *img, float red, float green, float blue) ilStatus ilSetNumChans(ilImage *img, int nc) ilStatus ilSetOrder(ilImage *img, iflOrder order) void ilInitPageSize(ilImage *img, int x, int y, int z, int c) ilStatus ilSetPageSize(ilImage *img, int nx, int ny, int nz, int nc) ilStatus ilSetPageSizeStruct(ilImage *img, const iflSize *pageSize) PPPPaaaaggggeeee 7777 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ilStatus ilSetPageSizeXY(ilImage *img, int nx, int ny) ilStatus ilSetPageSizeZ(int nz) ilStatus ilSetPageSizeC(int nc) ilStatus ilSetPageBorder(ilImage *img, int nx, int ny, int nz) ilStatus ilSetPageBorderStruct(ilImage *img, const iflXYZint *border) ilStatus ilSetSize(ilImage *img, iflSize *size) ilStatus ilSetXYsize(ilImage *img, int nx, int ny) ilStatus ilSetXsize(ilImage *img, int nx) ilStatus ilSetYsize(ilImage *img, int ny) ilStatus ilSetZsize(ilImage *img, int nz) ilStatus ilSetCsize(ilImage *img, int nc) ilStatus ilSetNumChans(ilImage *img, int nc) ilStatus ilSetColormap(ilImage *img, iflColormap *cmap) void ilSetMaxColormapLevels(ilImage* img, int maxLevels) void ilSetPriority(ilImage *img, int pri) QQQQuuuueeeerrrryyyyiiiinnnngggg aaaabbbboooouuuutttt mmmmiiiinnnniiiimmmmuuuummmm aaaannnndddd mmmmaaaaxxxxiiiimmmmuuuummmm ppppiiiixxxxeeeellll double ilGetMinValue(ilImage *img) double ilGetMaxValue(ilImage *img) SSSSeeeettttttttiiiinnnngggg mmmmiiiinnnniiiimmmmuuuummmm aaaannnndddd mmmmaaaaxxxxiiiimmmmuuuummmm ppppiiiixxxxeeeellll vvvvaaaalllluuuueeeessss ilStatus ilSetMinValue(ilImage *img, double val) ilStatus ilSetMaxValue(ilImage *img, double val) MMMMaaaannnnaaaaggggiiiinnnngggg tttthhhheeee IIIImmmmaaaaggggeeee''''ssss ssssttttaaaatttteeee ilLockedTile *ilLockTile3D(ilImage *img, int x, int y, int z, int nx, int ny, int nz, const ilConfig *config, int mode) ilLockedTile *ilLockTile(ilImage *img, int x, int y, int nx, int ny, const ilConfig *config, int mode) ilStatus ilLockPageSet(ilImage *obj, ilLockRequest* set, int mode, int count, ilCallback* perPageCb) ilStatus ilQLockPageSet(ilImage *obj, ilMpNode* parent, ilLockRequest* set, int mode, int count, ilMpManager** pMgr, ilCallback* perPageCb) void ilUnlockPageSet(ilImage *obj, ilLockRequest* set, int count) ilPage* ilLockPage(ilImage *obj, int x, int y, int z, int c, ilStatus* status, int mode) void ilUnlockPage(ilImage *obj, ilPage* page) ilLockRequest* ilGetLockTileSet(ilImage *obj, int* count, const iflTile3Dint* tile, const ilConfig* config, int includeBorder) ilStatus ilLockedTileGetStatus(ilLockedTile *tile) void ilLockedTileDelete(ilLockedTile *tile) PPPPaaaaggggeeee 8888 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) OOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn ssssuuuuppppppppoooorrrrtttt void ilMapTile(ilImage *img, iflOrientation fromOri, iflTile2Dint *tile, iflOrientation workOri) void ilMapTileFloat(ilImage *img, iflOrientation fromOri, iflTile2Dfloat *tile, iflOrientation workOri) void ilMapTileFlipTrans(ilImage *img, iflOrientation fromOri, iflTile2Dint *tile, iflFlip *flip, int *transXY, iflOrientation workOri) void ilMapXY(ilImage *img, iflOrientation fromOri, int *x, int *y, iflOrientation workOri) void ilMapXYFloat(ilImage *img, iflOrientation fromOri, float *x, float *y, iflOrientation workOri) void ilMapXYSign(ilImage *img, iflOrientation fromOri, float *x, float *y, iflOrientation workOri) void ilMapSize(ilImage *img, iflOrientation fromOri, int& x, int& y, iflOrientation workOri) iflOrientation ilMapOrientation(ilImage *img, int flipX, int flipY, int transXY) iflOrientation ilMapFlipTrans(ilImage *obj, iflOrientation fromOrientation, iflFlip* flip, int* transXY, iflOrientation workOrientation) void ilGetMappedSize(ilImage *img, iflSize *size, iflOrientation workOri) int ilIsMirrorOrientation(iflOrientation otherOri, iflOrientation workOri) MMMMaaaappppppppiiiinnnngggg ttttoooo oooorrrr ffffrrrroooommmm ssssoooouuuurrrrcccceeee iiiimmmmaaaaggggeeee ilStatus ilMapToSource3D(ilImage *obj, float* x, float* y, float* z, float u, float v, float w) ilStatus ilMapToSource2D(ilImage *obj, float* x, float* y, float u, float v) ilStatus ilMapToSource(ilImage *obj, iflXYfloat* src, const iflXYfloat* self) ilStatus ilMapFromSource3D(ilImage *obj, float* u, float* v, float* w, float x, float y, float z) ilStatus ilMapFromSource2D(ilImage *obj, float* u, float* v, float x, float y) ilStatus ilMapFromSource(ilImage *obj, iflXYfloat* self, const iflXYfloat* src) virtual ilStatus ilMapToInput3D(ilImage *obj, float* x, float* y, float* z, float u, float v, float w, int idx) ilStatus ilMapToInput2D(ilImage *obj, float* x, float* y, float u, float v, int idx) ilStatus ilMapToInput(ilImage *obj, iflXYfloat* xy, const iflXYfloat* uv, int idx) ilStatus ilMapFromInput3D(ilImage *obj, float* u, float* v, float* w, float x, float y, float z, int idx) ilStatus ilMapFromInput2D(ilImage *obj, float* u, float* v, float x, float y, int idx) ilStatus ilMapFromInput(ilImage *obj, iflXYfloat* uv, const iflXYfloat* xy, int idx) ilColorImg* ilGetColorImg(ilImage *obj, iflColorModel cm) int PPPPaaaaggggeeee 9999 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ilIsColorImg(ilImage *obj) double ilGetScaleMin(ilImage *img) double ilGetScaleMax(ilImage *img) ilStatus ilSetScaleMinMax(ilImage *img, double min, double max) ilStatus ilSetScaleType(ilImage *img, iflDataType type) void ilInitScaleMinMax(ilImage *img, int force) HHHHaaaarrrrddddwwwwaaaarrrreeee AAAAcccccccceeeelllleeeerrrraaaattttiiiioooonnnn void ilSetHwEnable(ilImage *obj, ilHwAccelEnable enable) ilHwAccelEnable ilHwGetEnableImage(ilImage *obj) int ilGetDisplayCacheEnable(ilImage *obj) MMMMiiiisssscccceeeellllllllaaaannnneeeeoooouuuussss void *ilAllocFillData(ilImage *img, float red, float green, float blue) void ilFreeFillData(ilImage *img, void *data) FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS iiiillllIIIImmmmaaaaggggeeeeDDDDeeeelllleeeetttteeee void ilImageDelete(ilImage *img) Deletes the ilImage pointed to by _i_m_g. aaaallllllllooooccccFFFFiiiillllllllDDDDaaaattttaaaa(((()))) void* ilAllocFillData(ilImage *obj, float red, float green, float blue) This function allocates a pixel and sets it to correspond to the given _r_e_d, _g_r_e_e_n, and _b_l_u_e pixel components. The returned value points to the allocated pixel, which should be free'd with ffffrrrreeeeeeeeFFFFiiiillllllllDDDDaaaattttaaaa(). aaaaddddddddIIIInnnnppppuuuutttt(((()))) ilStatus ilAddInput(ilImage *img, ilImage *inimg) Adds the image pointed to by _i_n_i_m_g to the end of the input (parent) list. See sssseeeettttIIIInnnnppppuuuutttt(). cccclllliiiippppTTTTiiiilllleeee(((()))) ilStatus ilClipTile(ilImage *img, int *x, int *y, int *z, int *nx, int *ny, int *nz, int includeBorder) ilStatus ilClipTileAsTile(ilImage *obj, iflTile3Dint* t, int includeBorder) ilStatus ilClipTileFloat(ilImage *obj, float *x, PPPPaaaaggggeeee 11110000 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) float *y, float *z, float *nx, float *ny, float *nz, int includeBorder) ilStatus ilClipTileFloatAsTile(ilImage *obj, iflTile3Dfloat* t, int includeBorder) Clips the given tile parameters to the image bounds. The tile boundaries might be passed as parameters to iiiillllGGGGeeeettttTTTTiiiilllleeee3333DDDD() or iiiillllSSSSeeeettttTTTTiiiilllleeee3333DDDD(), for example. The tile may be specified as six int parameters, or as an iflTile3Dint. Alternative versions allow the parameters to be passed as float. If _i_n_c_l_u_d_e_B_o_r_d_e_r is TRUE, then the clip bounds are increased to include the size of the page border, if any (see sssseeeettttPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((())))). If any of the parameters needed to be clipped to fit the image, this function returns ilDATACLIPPED; otherwise, it returns ilOKAY. ccccoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee(((()))) ilStatus ilConfigureRetainedCacheImage(ilImage *obj, const iflTile3Dint* tile, int c, int nc-1, int* chans, float minCacheBudget.05, float maxCacheBudget, size_t* retainedFileSize) Convenience method that calls iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee() with a single iiiillllIIIImmmmaaaaggggeeeeTTTTiiiilllleeee that specifies the tile for this image denoted in the arguments _t_i_l_e, _c, _n_c, and _c_h_a_n_s. The remaining arguments are passed directly to iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee(). The value returned by iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee() is returned. ccccooooppppyyyy(((()))) ilStatus ilCopy(ilImage* to, ilImage* from) Copies data from the image specified by _f_r_o_m. If the two images are of different sizes, only the origin-aligned intersecting portion is copied. See also ccccooooppppyyyyTTTTiiiilllleeee3333DDDD(). ccccooooppppyyyyTTTTiiiilllleeee(((()))) ilStatus ilCopyTile(ilImage *img, int x, int y, int nx, int ny, ilImage *other, int ox, int oy, int *chanList) ilStatus ilCopyTile3D(ilImage *img, int x, int y, int z, int nx, int ny, int nz, ilImage *other, int ox, int oy, int oz, int *chanList) ilStatus ilCopyTileCfg(ilImage *img, int x, int y, int z, int nx, int ny, int nz, ilImage *other, int ox, PPPPaaaaggggeeee 11111111 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) int oy, int oz, ilConfig *config) These functions queue a copyTile request with iiiillllQQQQCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg() and wait for it to complete. The tile at _x, _y, _z of size _n_x, _n_y, _n_z is copied to this image from _o_t_h_e_r image at _o_x, _o_y, _o_z. The 2D version, iiiillllCCCCooooppppyyyyTTTTiiiilllleeee() calls the corresponding 3D routine with _z set to zero and _n_z and _o_z set to one. iiiillllCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg() takes an ilConfig argument, _c_o_n_f_i_g, which is used to reconfigure the pixel data type, order, channels and orientation as well as offsetting into the channel dimension. The other two copy routines accept a channel list, which is used to construct an ilConfig object with all other taken from "this" image. The channel list in _c_o_n_f_i_g specifies a channel mapping between the "other" and "this" image. The number of entries in the list should always match the number of channels in "this" image. A -1 means no data is written for that channel. See also iiiillllQQQQCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg() and iiiillllGGGGeeeettttCCCCoooonnnnffffiiiigggg(). ffffiiiillllllllTTTTiiiilllleeee(((()))) ilStatus ilFillTile(ilImage *img, int x, int y, int nx, int ny, const void *data, ilConfig *config, iflTile2Dint *fillMask) ilStatus ilFillTile3D(ilImage *img, int x, int y, int z, int nx, int ny, int nz, const void *data, ilConfig *config, iflTile2Dint *fillMask) ilStatus ilFillTileRGB(int x, int y, int z, int nx, int ny, int nz, float red, float green, float blue, const iflTile3Dint* fillMask=NULL, iflOrientation orientation); These functions queue a fill tile request with iiiillllQQQQFFFFiiiillllllllTTTTiiiilllleeee3333DDDD() or iiiillllQQQQFFFFiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB() and wait for it to complete. The tile at position (_x,_y,_z) of size _n_x, _n_y, _n_z will be filled with a constant pixel value. iiiillllFFFFiiiillllllllTTTTiiiilllleeee() sets _z to zero and _n_z to one. _c_o_n_f_i_g describes the configuration (See the ilConfig man page) of the fill value _d_a_t_a; if NULL, it is assumed to have the same configuration as the image. For example, to fill a tile of an RGB image with white, _d_a_t_a should hold the values (255, 255, 255). iiiillllFFFFiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB() is provided as a convenience method for RGB images; the _r_e_d, _g_r_e_e_n, and _b_l_u_e pixel components are passed directly as floats. The parameter, _f_i_l_l_M_a_s_k, can be used to prevent filling a portion of the tile. If _f_i_l_l_M_a_s_k is not NULL, only the portion outside of _f_i_l_l_M_a_s_k is filled. If _c_o_n_f_i_g is not NULL and it specifies a valid orientation, then _f_i_l_l_M_a_s_k is mapped from that orientation to that of the image; otherwise _f_i_l_l_M_a_s_k is assumed to have the same PPPPaaaaggggeeee 11112222 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) orientation as that of the image. iiiillllFFFFiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB() takes a mask _o_r_i_e_n_t_a_t_i_o_n as a parameter; a value of zero will default to the orientation of the image. See also the ilCacheImg man page. ffffrrrreeeeeeeeFFFFiiiillllllllDDDDaaaattttaaaa(((()))) void ilFreeFillData(ilImage *obj, void* data) This function free's a pixel allocated with aaaallllllllooooccccFFFFiiiillllllllDDDDaaaattttaaaa(). ggggeeeettttDDDDiiiimmmmeeeennnnssssiiiioooonnnnssss(((()))) void ilGetDimensions(iflSize *size) Returns the size of the image in the ilLowerLeftOrigin orientation. ggggeeeettttDDDDiiiirrrreeeeccccttttIIIInnnnppppuuuutttt(((()))) ilImage* ilGetDirectInput(ilImage *obj, int idx) Return the direct input at index _i_d_x, ignoring whether or not it is enabled. (See ggggeeeettttIIIInnnnppppuuuutttt() and iiiillllLLLLiiiinnnnkkkk::::::::ggggeeeettttDDDDiiiirrrreeeeccccttttPPPPaaaarrrreeeennnntttt().) ggggeeeettttDDDDiiiissssppppllllaaaayyyyCCCCaaaacccchhhheeeeEEEEnnnnaaaabbbblllleeee(((()))) int ilGetDisplayCacheEnable(ilImage *obj) Returns the current setting for the display cache enable. See sssseeeettttDDDDiiiissssppppllllaaaayyyyCCCCaaaacccchhhheeeeEEEEnnnnaaaabbbblllleeee. ggggeeeettttCCCCoooolllloooorrrrIIIImmmmgggg(((()))) ilColorImg* getColorImg(iflColorModel cm) Returns a pointer to an ilColorImg that is a child of "this" image and has the color model specified by _c_m. The new color converter inherits most attributes, except for the color model and the number of channels, from "this" image. PPPPaaaaggggeeee 11113333 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ggggeeeettttCCCCoooolllloooorrrrmmmmaaaapppp(((()))) ilStatus ilGetColormap(ilImage *img, iflColormap *cmap) iflColormap* ilGetColormapPtr(ilImage *img) These functions return the image's colormap. The first version deposits the image's color map in the iflColormap object pointed to by _c_m_a_p and returns a status value. The status value is either the image's status or ilNULLOBJ, if the colormap is NULL. If ilOKAY is not returned, then the argument is unchanged. The second version returns a pointer to this image object's colormap, which may be NULL. ggggeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(((()))) iflColorModel ilGetColorModel(ilImage *img) Returns the color model of the image. _i_f_l_C_o_l_o_r_M_o_d_e_l is an enumerated type with the following members: _i_f_l_R_G_B red, green, blue _i_f_l_R_G_B_A red, green, blue, alpha _i_f_l_R_G_B_P_a_l_e_t_t_e RGB color mapped to a look-up table _i_f_l_H_S_V hue, saturation, value _i_f_l_C_M_Y cyan, magenta, yellow _i_f_l_C_M_Y_K cyan, magenta, yellow, black _i_f_l_N_e_g_a_t_i_v_e inverted luminance (min is white, max is black) _i_f_l_L_u_m_i_n_a_n_c_e luminance _i_f_l_L_u_m_i_n_a_n_c_e_A_l_p_h_a luminance, alpha _i_f_l_B_G_R swapped RGB, for images generated by SGI _i_f_l_A_B_G_R swapped RGBA, for images generated by SGI _i_f_l_M_u_l_t_i_S_p_e_c_t_r_a_l multiple channels of sensor-specific data The color model is used to interpret the meaning of the channels that make up a pixel. See also iiiillllSSSSeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(). PPPPaaaaggggeeee 11114444 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ggggeeeettttCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn(((()))) iflCompression ilGetCompression(ilImage *img) Returns the image compression parameter as the enumerated type, _i_f_l_C_o_m_p_r_e_s_s_i_o_n. This parameter reflects the type of compression used in the image data. See also iiiillllSSSSeeeettttCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn(). ggggeeeettttCCCCoooonnnnffffiiiigggg(((()))) void ilGetConfig(ilImage *img, ilConfig* cfg) Returns the image's configuration in the ilConfig object pointed to by _c_f_g. The ilConfig class (see _i_l/_i_l_C_o_n_f_i_g._h) contains eight elements: an iflDataType that defines the data type of the image's pixels, an iflOrder that describes how that data is ordered, an int that sets how many data channels there are, an array of ints that determines the order of the channels, an iflOrientation, and three zoom factors for the three dimensions. See also iiiillllGGGGeeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(), iiiillllGGGGeeeettttOOOOrrrrddddeeeerrrr(), iiiillllGGGGeeeettttNNNNuuuummmmCCCChhhhaaaannnnssss(), and iiiillllGGGGeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(). ggggeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(((()))) iflOrientation ilGetOrientation(ilImage *img) Returns the image orientation parameter as the enumerated type, _i_f_l_O_r_i_e_n_t_a_t_i_o_n. This parameter determines, for example, whether the image origin is the upper left corner or the lower left corner. See also iiiillllSSSSeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(). ggggeeeettttCCCCssssiiiizzzzeeee(((()))) int ilGetCsize(ilImage *img) int ilGetNumChans(ilImage *img) Returns the number of channels in the image. For example an RGB image is a 3 channel image. ggggeeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(((()))) iflDataType ilGetDataType(ilImage *img) Returns the data type of the image's pixels. The iflDataType value returned can be one of the following: _i_f_l_B_i_t, _i_f_l_C_h_a_r, _i_f_l_U_C_h_a_r, _i_f_l_S_h_o_r_t, _i_f_l_U_S_h_o_r_t, _i_f_l_L_o_n_g, _i_f_l_U_L_o_n_g, _i_f_l_F_l_o_a_t, or _i_f_l_D_o_u_b_l_e. See also iiiillllGGGGeeeettttCCCCoooonnnnffffiiiigggg(). PPPPaaaaggggeeee 11115555 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ggggeeeettttFFFFiiiillllllll(((()))) iflPixel *pixel ilGetFill(ilImage *img) Returns a reference to the image's fill pixel value. See also iiiillllSSSSeeeettttFFFFiiiillllllll(). ggggeeeettttFFFFiiiillllllllDDDDaaaattttaaaa(((()))) void* ilGetFillData(ilImage *img) This function calls the ggggeeeettttDDDDaaaattttaaaa() method of the image's fill pixel and returns the result. ggggeeeettttFFFFiiiillllllllVVVVaaaalllluuuueeee(((()))) double ilGetFillValue(ilImage *img, int c) Returns the image fill value of channel _c. See also iiiillllGGGGeeeettttFFFFiiiillllllll(). ggggeeeettttHHHHeeeeiiiigggghhhhtttt(((()))) int getHeight(ilImage *img) Returns the height of _i_m_g. See also ilGetWidth() and ilGetYsize(). ggggeeeettttHHHHwwwwEEEEnnnnaaaabbbblllleeee(((()))) ilHwAccelEnable ilGetHwEnable(ilImage *obj) This function returns the value of the hardware acceleration enable flag as set by sssseeeettttHHHHwwwwEEEEnnnnaaaabbbblllleeee(). ggggeeeettttIIIInnnnppppuuuutttt(((()))) ilImage *ilGetInput(ilImage *img, int idx) Returns a pointer to the ilImage at index _i_d_x in the parent list. NULL is returned if there is no image at the specified index. ggggeeeettttIIIInnnnppppuuuuttttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnntttt(((()))) ilImageTile* ilGetInputTileRequirement(ilImage *obj, const iflTile3Dint* tile, int c, int nc, int* chans, PPPPaaaaggggeeee 11116666 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) int* pageSetCount) This method is used by the global function iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee() to determine the input data requirement to evaluate a given output tile. The method really ought to be a virtual, so that derived classes can easily override its behavior, but it cannot be done this way and still maintain binary compatibility with IL 3.1.1. Therefore, a derived class can override the behavior of this method only by calling the method sssseeeettttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnnttttFFFFuuuunnnnccccttttiiiioooonnnn() to establish a new behavior. The default implementation returns an array of iiiillllIIIImmmmaaaaggggeeeeTTTTiiiilllleeee's, one for each of the image's inputs, with tile coordinates identical to the passed tile coordinates. Derived classes, such as iiiillllMMMMoooonnnnaaaaddddiiiiccccIIIImmmmgggg and iiiillllPPPPoooollllyyyyaaaaddddiiiiccccIIIImmmmgggg, override the default behavior to take input offsets into account. iiiillllWWWWaaaarrrrppppIIIImmmmgggg overrides the default behavior to incorporate the effect of the warp. As an example of overriding the default behavior, here is iiiillllPPPPoooollllyyyyaaaaddddiiiiccccIIIImmmmgggg's version: ilImageTile* ilPolyadicImg::getInputTileRequirement(const iflTile& tile, int c, int nc, int* chans, int& inputTileCount) { if (resetCheck()) { inputTileCount = 0; return NULL; } int count = getNumParents(); ilImageTile* inputTiles = new ilImageTile [count]; int activeCount = 0; ilLinkParentIter iter(this); ilLink* link; while (link = iter.next()) { if (link->derivesFrom(iflClassID(ilImage))) { ilImage* img = (ilImage*)link; iflTile offTile = tile; int idx = iter.currIndex(); if (idx >= 0) { int x, y, z; getOffset(x, y, z, idx); offTile.x -= x; offTile.y -= y; offTile.z -= z; } inputTiles[activeCount++].init(img, offTile, c, nc, chans); } else if (link->derivesFrom(iflClassID(ilImgStat))) activeCount += ((ilImgStat*)link) ->getInputTileRequirement(inputTiles[activeCount]); } inputTileCount = activeCount; PPPPaaaaggggeeee 11117777 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) if (activeCount == 0) { delete inputTiles; inputTiles = NULL; } return inputTiles; } ggggeeeettttLLLLoooocccckkkkTTTTiiiilllleeeeSSSSeeeetttt(((()))) ilLockRequest* ilImageGetLockTileSet(ilImage *obj, int* count, const iflTile3Dint* tile, const ilConfig* config, int includeBorder) This function generates an array of ilLockRequests corresponding to the specified "tile" in the image. These requests can then be passed to iiiillllLLLLoooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() and iiiillllUUUUnnnnlllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() to lock the pages comprising the tile. If _i_n_c_l_u_d_e_B_o_r_d_e_r is TRUE then all pages that intersect the tile comprise the set. Otherwise, the smallest set of pages that cover the tile comprises the set. This distinction is relevant only if the image has non-zero page borders. Generally, you should set _i_n_c_l_u_d_e_B_o_r_d_e_r to TRUE if you are generating the set for writing, and FALSE if you are generating the set for reading. The number of generated lock requests is returned in the reference parameter "count". The returned ilLockRequest set is in nnnneeeewwww()'ed memory. It is the responsibility of the caller to delete the set when no longer in use. ggggeeeettttMMMMaaaaxxxxCCCCoooolllloooorrrrmmmmaaaappppLLLLeeeevvvveeeellllssss(((()))) int ilImageGetMaxColormapLevels(ilImage *obj) This function returns the maximum color map level attribute set with iiiillllSSSSeeeettttMMMMaaaaxxxxCCCCoooolllloooorrrrmmmmaaaappppLLLLeeeevvvveeeellllssss(). ggggeeeettttMMMMaaaaxxxxVVVVaaaalllluuuueeee(((()))) double ilGetMaxValue(ilImage *img) Returns the maximum allowable value for this image object. ggggeeeettttMMMMiiiinnnnVVVVaaaalllluuuueeee(((()))) double ilGetMinValue(ilImage *img) Returns the minimum allowable value for this image object. PPPPaaaaggggeeee 11118888 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ggggeeeettttNNNNuuuummmmIIIInnnnppppuuuuttttssss(((()))) int ilGetNumInputs(ilImage *img) Returns the number of images in this image's input (parent) list. ggggeeeettttOOOOrrrrddddeeeerrrr(((()))) iflOrder ilGetOrder(ilImage *img) Returns the pixel channel order of this image. The enumerated type, _i_f_l_O_r_d_e_r, has members _i_f_l_I_n_t_e_r_l_e_a_v_e_d, _i_f_l_S_e_q_u_e_n_t_i_a_l, or _i_f_l_S_e_p_a_r_a_t_e to indicate how the pixel data is ordered. For _i_f_l_I_n_t_e_r_l_e_a_v_e_d, all pixel channels are stored adjacently. For an RGB color image, this would be RGBRGBRGB, and so forth. For _i_f_l_S_e_q_u_e_n_t_i_a_l, each pixel channel is stored as a separate line. For an RGB color image, this is a line of Red, followed by a line of Green, followed by a line of Blue for one line of RGB pixels. For _i_f_l_S_e_p_a_r_a_t_e, each channel is stored in a separate page. See the _I_m_a_g_e_V_i_s_i_o_n _L_i_b_r_a_r_y _P_r_o_g_r_a_m_m_i_n_g _G_u_i_d_e for more details. ggggeeeettttPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((()))) void ilGetPageBorder(ilImage *img, iflXYZint *border) const iflXYZint& ilGetPageBorderPtr(ilImage *obj) int ilGetPageBorderX() int ilGetPageBorderY() int ilGetPageBorderZ() Returns the page border size in an iflXYZint structure. The alternative methods provide access to the per-coordinate page border values. ggggeeeettttPPPPaaaaggggeeeeCCCCoooouuuunnnnttttssss(((()))) void ilGetPageCounts(ilImage *obj, int* nx, int* ny, int* nz, int* nc) Returns the number of pages required to cover the entire image extent in each of the _x, _y, _z, and _c dimensions ggggeeeettttPPPPaaaaggggeeeeDDDDeeeellllttttaaaa(((()))) void ilGetPageDelta(ilImage *img, int *nx, int *ny, int *nz, int *nc) void ilGetPageDeltaStruct(ilImage *img, int *nx, int *ny, int *nz, int *nc) PPPPaaaaggggeeee 11119999 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) Returns the effective page size with page borders removed. It is computed by subtracting twice the page border size from the current page size. ggggeeeettttPPPPaaaaggggeeeeIIIInnnnddddiiiicccceeeessss(((()))) void ilGetPageIndices(ilImage *obj, int x, int y, int z, int c, int* ix, int* iy, int* iz, int* ic) Return the indices of the image page containing the point (_x, _y, _z, _c). ggggeeeettttPPPPaaaaggggeeeeOOOOrrrriiiiggggiiiinnnn(((()))) ilStatus ilGetPageOrigin(int x, int y, int z, int c, int *px, int *py, int *pz, int *pc) ilStatus ilGetPageOriginStruct(const iflXYZCint *pos, iflXYZCint *org) int ilGetPageOriginX(int x) int ilGetPageOriginY(int y) int ilGetPageOriginZ(int z) int ilGetPageOriginC(int c) This method returns the origin of the page that contains the point passed in as _x, _y, _z, and _c. The coordinates of the page are returned in _p_x, _p_y, _p_c, and _p_z. The returned page coordinates may correspond to a page that does not actually reside within the image bounds if the passed pixel coordinates are also outside the image bounds. If the image has page borders, then it is possible that more than one page contains the point. In this case, the page with the greatest coordinate values is returned. If the image's status is not ilOKAY, then that status is returned and the page coordinates values are not set. Otherwise, ilOKAY is returned. Alternative methods are provided to compute each of the page coordinates independently. ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(((()))) size_t ilGetPageSizeBytes(ilImage *img) size_t ilGetPageSizeXY(ilImage *img, int *hx, int *ny) size_t ilGetPageSize(ilImage *img, int *nx, int *ny, int *nz, int *nc) size_t ilGetPageSizeStruct(ilImage *img, iflSize *pageSize) size_t ilGetMappedPageSize(ilImage *img, iflSize *pageSize, iflOrientation ori) size_t ilGetPageDimensions(ilImage *img, iflSize *pageSize) PPPPaaaaggggeeee 22220000 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) Returns the image page size in bytes. This takes into account the number of channels per pixel and the channel data type. The second and third versions also return the page size in the x, y, z, c dimensions in _n_x, _n_y, _n_z and _n_c. The fourth version returns the page size in an iflSize structure, possibly transformed into the orientation specified in _o_r_i. The x and y page size will be transposed as needed, based on the orientation. See also the ilCacheImg man page. The iiiillllGGGGeeeettttPPPPaaaaggggeeeeDDDDiiiimmmmeeeennnnssssiiiioooonnnnssss function returns the page size in a standard (non-transposed) orientation. This is useful if you are interested in the "width" or "height" of a page, independent of the data orientation. ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeXXXX(((()))) ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeYYYY(((()))) ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeZZZZ(((()))) ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeCCCC(((()))) int ilGetPageSizeX(ilImage *img) int ilGetPageSizeY(ilImage *img) int ilGetPageSizeZ(ilImage *img) int ilGetPageSizeC(ilImage *img) Returns the image's page size in the _x-, _y-, _z-, _c-dimensions, respectively. ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeePPPPiiiixxxx(((()))) int ilGetPageSizePix(ilImage *img) Returns the image page size in pixels. See also iiiillllGGGGeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(). ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeeVVVVaaaallll(((()))) int ilGetPageSizeVal(ilImage *img) Returns the image page size in terms of discrete values. This takes into account the number of channels per pixel that is, it returns ggggeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeeePPPPiiiixxxx() * number of channels in the page). See also iiiillllGGGGeeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(). ggggeeeettttPPPPiiiixxxxeeeellll(((()))) ilStatus ilGetPixel(ilImage *img, int x, int y, iflPixel *pix) This function is the 2-D version of iiiillllGGGGeeeettttPPPPiiiixxxxeeeellll3333DDDD(). It calls iiiillllGGGGeeeettttPPPPiiiixxxxeeeellll3333DDDD() with _z set to 0. See also ggggeeeettttPPPPiiiixxxxeeeellll3333DDDD(). PPPPaaaaggggeeee 22221111 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ggggeeeettttPPPPiiiixxxxeeeellll3333DDDD(((()))) ilStatus ilGetPixel3D(ilImage *img, int x, int y, int z, iflPixel *pix) Gets the iflPixel at the point specified by _x, _y, and _z and returns it in _p_i_x. An iflPixel specifies the channel data type, the number of channels per pixel and a pointer to the pixel data. This function calls iiiillllGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() with the tile size _n_x, _n_y, _n_z set to 1. Returns ilOKAY upon successful completion. See also iiiillllGGGGeeeettttPPPPiiiixxxxeeeellll(), iiiillllGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and iiiillllSSSSeeeettttPPPPiiiixxxxeeeellll3333DDDD(). ggggeeeettttPPPPrrrriiiioooorrrriiiittttyyyy(((()))) int ilGetPriority(ilImage *img) This function gets the current cache priority of this image. See sssseeeettttPPPPrrrriiiioooorrrriiiittttyyyy() for more details. ggggeeeettttSSSSccccaaaalllleeeeMMMMaaaaxxxx(((()))) double ilGetScaleMax(ilImage *img) Returns the maximum value used for scaling during color conversion and display. By default the maximum scale value tracks the maximum value of the image. However, it may be set with sssseeeettttSSSSccccaaaalllleeeeMMMMiiiinnnnMMMMaaaaxxxx(). ggggeeeettttSSSSccccaaaalllleeeeMMMMiiiinnnn(((()))) double ilGetScaleMin(ilImage *img) Returns the minimum value used for scaling during color conversion and display. By default the minimum scale value tracks the minimum value of the image. However, it may be set with sssseeeettttSSSSccccaaaalllleeeeMMMMiiiinnnnMMMMaaaaxxxx(). ggggeeeettttSSSSiiiizzzzeeee(((()))) void ilGetSize(ilImage *img, iflSize *size) void ilGetMappedSize(ilImage *img, iflSize *size, iflOrientation workOri) iflSize* ilGetSizePtr(ilImage *img) The first version returns the image size in the iflSize object referenced by _s_i_z_e. An iflSize has integer member variables _x, _y, _z, and _c to hold each dimension of the image. The second version first maps the image's size to the orientation indicated by _w_o_r_k_O_r_i. If the indicated orientation is transposed relative to the image's orientation, then the _x and _y sizes are swapped in the returned PPPPaaaaggggeeee 22222222 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) size. See also iiiillllGGGGeeeettttXXXXSSSSiiiizzzzeeee(), iiiillllGGGGeeeettttYYYYSSSSiiiizzzzeeee(), iiiillllGGGGeeeettttZZZZSSSSiiiizzzzeeee() and iiiillllGGGGeeeettttCCCCSSSSiiiizzzzeeee(). The third version returns a reference to the actual _s_i_z_e attribute of this image object. ggggeeeettttSSSSttttrrrriiiiddddeeeessss(((()))) void ilGetStrides(ilImage *obj, int* xs, int* ys, int* zs, int* cs, int nx, int ny, int nz, int nc, iflOrder ord) Returns by reference the x stride (_x_s), y stride (_y_s), z stride (_z_s), channel stride (_c_s) and number of channels (_n_c). The buffer strides are used to step through a data buffer of size _n_x by _n_y that contains pixels with channel order _o_r_d. If the order is _n_u_m_i_f_l_O_r_d_e_r_s it causes the current data order to be used. The x stride is used to step from one pixel to the next in the same row. The y stride is used to step to the next pixel in the same column. For 3D images, the z stride is used to step to the next pixel along the z axis at the same xy location. A multiplier _n can be used to move _n pixels in a desired direction within the data buffer. The channel stride is used to step to the next channel of the same pixel. ggggeeeettttTTTTiiiilllleeee(((()))) ilStatus ilGetTile(ilImage *img, int x, int y, int nx, int ny, void *data, ilConfig *config) ilStatus ilGetTile3D(ilImage *img, int x, int y, int z, int nx, int ny, int nz, void *data, ilConfig *config) ilStatus ilGetSubTile(ilImage *img, int x, int y, int nx, int ny, void *data, int dx, int dy, int dnx, int dny, ilConfig *config) ilStatus ilGetSubTile3D(ilImage *img, int x, int y, int z, int nx, int ny, int nz, void *data, int dx, int dy, int dz, int dnx, int dny, int dnz, ilConfig *config) These functions queue a tile read request with iiiillllQQQQGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and wait for it to complete. The source tile origin is specified by _x, _y, _z, and the tile size is specified by _n_x, _n_y, _n_z. The 2D versions, iiiillllGGGGeeeettttTTTTiiiilllleeee() and iiiillllGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee(), call the corresponding 3D routine with _z set to zero and _n_z set to one. iiiillllGGGGeeeettttTTTTiiiilllleeee() and iiiillllGGGGeeeettttTTTTiiiilllleeee3333DDDD() assume that the destination buffer has the same offset and size as the request; iiiillllGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee() and iiiillllGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() allow the destination buffer to have a different PPPPaaaaggggeeee 22223333 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) position and size, specified by _d_x, _d_y, _d_n_x, and _d_n_y (and _d_z and _d_n_z for the 3D version.) Optionally, an ilConfig object pointed to by _c_o_n_f_i_g can be used to specify the desired data type, order, number of channels and channel order. _c_o_n_f_i_g is NULL by default, meaning that no conversion is performed on the input data. See also iiiillllQQQQGGGGeeeettttTTTTiiiilllleeee3333DDDD(), iiiillllQQQQGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and iiiillllGGGGeeeettttCCCCoooonnnnffffiiiigggg(). ggggeeeettttWWWWiiiiddddtttthhhh(((()))) int getWidth(ilImage *img) Returns the width of _i_m_g. See also ilGetHeight() and ilGetXsize(). ggggeeeettttXXXXssssiiiizzzzeeee(((()))) int ilGetXsize(ilImage *img) Returns the size of the image in the _x-dimension, measured in pixels. Note that by definition in the IL, the _x-dimension is always the fastest varying dimension in image memory order. I.e. the scanline dimension. In non-transposed orientations, scanlines are oriented horizontally with respect to the image. Thus, for non-transposed orientations ilGetXsize() returns the _w_i_d_t_h of the image. In transposed orientations the scanlines are oriented vertically with respect to the image and ilGetXsize() returns the _h_e_i_g_h_t of the image. Transposed orientations are: _i_f_l_L_e_f_t_U_p_p_e_r_O_r_i_g_i_n, _i_f_l_R_i_g_h_t_U_p_p_e_r_O_r_i_g_i_n, _i_f_l_R_i_g_h_t_L_o_w_e_r_O_r_i_g_i_n and _i_f_l_L_e_f_t_L_o_w_e_r_O_r_i_g_i_n. See also iiiillllGGGGeeeettttHHHHeeeeiiiigggghhhhtttt(), iiiillllGGGGeeeettttWWWWiiiiddddtttthhhh(), iiiillllGGGGeeeettttSSSSiiiizzzzeeee(), iiiillllGGGGeeeettttYYYYssssiiiizzzzeeee() and iiiillllGGGGeeeettttZZZZssssiiiizzzzeeee(). ggggeeeettttYYYYssssiiiizzzzeeee(((()))) int ilGetYsize(ilImage *img) Returns the size of the image in the _y-dimension, measured in pixels. See also iiiillllGGGGeeeettttHHHHeeeeiiiigggghhhhtttt(), iiiillllGGGGeeeettttWWWWiiiiddddtttthhhh(), iiiillllGGGGeeeettttSSSSiiiizzzzeeee(), iiiillllGGGGeeeettttXXXXssssiiiizzzzeeee() and iiiillllGGGGeeeettttZZZZssssiiiizzzzeeee(). PPPPaaaaggggeeee 22224444 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) ggggeeeettttZZZZssssiiiizzzzeeee(((()))) int ilGetZsize(ilImage *img) Returns the size of the image in the _z-dimension. This value can be thought of as representing the number of _x_y planes in an image. For two-dimensional images, the returned value is 1. Refer to the _I_m_a_g_e_V_i_s_i_o_n _L_i_b_r_a_r_y _P_r_o_g_r_a_m_m_i_n_g _G_u_i_d_e for more details. See also iiiillllGGGGeeeettttSSSSiiiizzzzeeee(), iiiillllGGGGeeeettttXXXXssssiiiizzzzeeee() and iiiillllGGGGeeeettttYYYYssssiiiizzzzeeee(). hhhhaaaassssPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((()))) int ilHasPageBorder(ilImage *img) This functions returns TRUE if the image has page borders, FALSE otherwise. iiiinnnniiiittttCCCCoooolllloooorrrrMMMMooooddddeeeellll(((()))) void initColorModel(int noAlpha=FALSE) _p_r_o_t_e_c_t_e_d Initializes the color model based on the number of channels if it has never been explicitly set with sssseeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(). Images with one channel are set to _i_f_l_L_u_m_i_n_a_n_c_e. Images with two channel are set to _i_f_l_L_u_m_i_n_a_n_c_e_A_l_p_h_a. Images with three channels are set to _i_f_l_R_G_B. Images with four channels are set to _i_f_l_R_G_B_A by default. If _n_o_A_l_p_h_a is true, then images with two or four channels are set to _i_f_l_M_u_l_t_i_S_p_e_c_t_r_a_l instead. All other cases are set to _i_f_l_M_u_l_t_i_S_p_e_c_t_r_a_l. iiiinnnniiiittttSSSSccccaaaalllleeeeMMMMiiiinnnnMMMMaaaaxxxx(((()))) void ilInitScaleMinMax(ilImage *img, int force) Initializes the scale minimum and maximum to the image minimum and maximum values. If scale minimum and maximum have already been set, they are unchanged, unless _f_o_r_c_e is TRUE. The scale minimum and maximum are used during color conversion and display. By default, the scale minimum and maximum track the image minimum and maximum values. iiiissssCCCCoooolllloooorrrrIIIImmmmgggg(((()))) int ilIsColorImg() Returns TRUE if the image is a color converter that was created with ggggeeeettttCCCCoooolllloooorrrrIIIImmmmgggg(). Otherwise FALSE is returned. PPPPaaaaggggeeee 22225555 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) iiiissssIIIInnnntttteeeeggggrrrraaaallll(((()))) int ilIsIntegral(ilImage *img) Returns TRUE if the image's data type is an integral valued type. If it is a floating point type, then FALSE is returned. This function is based on the standalone function, iiiiffffllllDDDDaaaattttaaaaIIIIssssIIIInnnntttteeeeggggrrrraaaallll() (see the iflDataSize man page). iiiissssMMMMiiiirrrrrrrroooorrrrOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(((()))) int ilIsMirrorOrientation(iflOrientation otherOri, iflOrientation workOri) The routine returns _T_R_U_E if _o_t_h_e_r_O_r_i is a mirror image of _w_o_r_k_O_r_i. If _w_o_r_k_O_r_i is 0, the orientation of the image is used instead. This can be useful when implementing operations that have calculations that depend on a particular frame of reference. For example, when implementing an image rotation operator, the angle can need to be negated to produce consistent results on inputs of arbitrary orientation. iiiissssSSSSiiiiggggnnnneeeedddd(((()))) int ilIsSigned(ilImage *img) Returns TRUE if the image's data type is signed. If it is unsigned, then FALSE is returned. This function is based on the standalone function, iiiiffffllllDDDDaaaattttaaaaIIIIssssSSSSiiiiggggnnnneeeedddd() (see the iflDataSize man page). iiiissssWWWWrrrriiiittttaaaabbbblllleeee(((()))) int ilImageIsWritable(ilImage *obj) This function returns TRUE if the image can be written to; FALSE otherwise. lllloooocccckkkkPPPPaaaaggggeeee(((()))) ilPage* ilImageLockPage(ilImage *obj, int x, int y, int z, int c, ilStatus* status, int mode) This is the single page version of ilLockPageSet(). It returns a pointer to the page containing the pixel _x, _y, _z, _c. The _s_t_a_t_u_s value specifies the error code if a page could not be referenced. If the function succeeds, _s_t_a_t_u_s is set to ilOKAY. See ilQLockPageSet() for a description of _m_o_d_e and possible _s_t_a_t_u_s returns. See also _i_l_U_n_l_o_c_k_P_a_g_e(). PPPPaaaaggggeeee 22226666 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) lllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt(((()))) ilStatus ilImageLockPageSet(ilImage *obj, ilLockRequest* set, int mode, int count, ilCallback* perPageCb) This function queues a list of lock page requests with iiiillllQQQQLLLLoooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() and waits for them to complete. Each ilLockRequest in the _s_e_t array is locked and a pointer to the page is deposited in the corresponding ilLockRequest. As a consequence, this causes all the image data for the pages to be computed. If all of the requests succeed, ilOKAY is returned. If one or more fail, an error code will be returned and the ilLockRequest structures will contain individual status codes. At a later time, iiiillllUUUUnnnnlllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() can be called to release the set of pages. See iiiillllQQQQLLLLoooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() and iiiillllUUUUnnnnlllloooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt() for more information. lllloooocccckkkkTTTTiiiilllleeee(((()))) ilLockedTile *lockTile(int x, int y, int nx, int ny, const ilConfig* config, int mode) This is the 2-D version of ilLockTile3D(). It calls ilLockTile3D() with _z set to 0 and _n_z set to 1. See also ilLockedTileDelete(). lllloooocccckkkkTTTTiiiilllleeee3333DDDD(((()))) ilLockedTile *lockTile3D(int x, int y, int z, int nx, int ny, int nz, const ilConfig* config, int mode) This function causes the tiles that intersect the indicated image volume to be ``locked.'' This is accomplished by ``locking'' the image pages which store the data for the affected tiles. These pages remain locked until the ilLockedTile object returned by ilLockTile3D() is deleted. The status result of the function can be retrieved by calling ilLockedTileGetStatus() with the returned ilLockedTile object. mmmmaaaappppFFFFlllliiiippppTTTTrrrraaaannnnssss(((()))) iflOrientation ilImageMapFlipTrans(ilImage *obj, iflOrientation fromOrientation, iflFlip* flip, int* transXY, iflOrientation workOrientation) This function determines the flips and/or transpositions required to map from _f_r_o_m_O_r_i_e_n_t_a_t_i_o_n to _w_o_r_k_O_r_i_e_n_t_a_t_i_o_n (if the work orientation is zero, the image's orientation is used). The return value is the work orientation. The required _f_l_i_p and _t_r_a_n_s_X_Y values are also PPPPaaaaggggeeee 22227777 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) returned. mmmmaaaappppFFFFrrrroooommmmIIIInnnnppppuuuutttt(((()))) ilStatus ilMapFromInput3D(ilImage *obj, float* u, float* v, float* w, float x, float y, float z, int idx) ilStatus ilMapFromInput2D(ilImage *obj, float* u, float* v, float x, float y, int idx) ilStatus ilMapFromInput(ilImage *obj, iflXYfloat* uv, const iflXYfloat* xy, int idx) Maps a point, (_x,_y,_z), from the _i_d_x'th input image's output coordinate space to this image's output coordinate space and returns the result in (_u,_v,_w). This virtual function's default implementation is the identity mapping. It can be overridden in derived classes (like ilWarpImg) to take into account any address manipulations that an operator can perform. The overloaded versions provide 2D address mapping, which is sufficient for most applications. Note that the IL does not yet support images with non-identity coordinate mappings in the z dimension, and all coordinates (input and output) are described in the orientation of this image. See also mmmmaaaappppFFFFrrrroooommmmSSSSoooouuuurrrrcccceeee(((()))), mmmmaaaappppTTTTooooIIIInnnnppppuuuutttt(((()))). mmmmaaaappppFFFFrrrroooommmmSSSSoooouuuurrrrcccceeee(((()))) ilStatus ilMapFromSource3D(ilImage *obj, float* u, float* v, float* w, float x, float y, float z) ilStatus ilMapFromSource2D(ilImage *obj, float* u, float* v, float x, float y) ilStatus ilMapFromSource(ilImage *obj, iflXYfloat* self, const iflXYfloat* src) Maps a point, (_x,_y,_z), in the ultimate source image's input coordinate space to this image's output coordinate space and returns the result in (_u,_v,_w). Both points are defined in this image's orientation. One possible use for this is to determine where to plot annotation that is tied to the source image when zooming and rotating an image. The ilView function, sssseeeettttLLLLoooocccc(((()))), also uses this function to position a location in the source image of an operator chain at the center of the viewed region. The overloaded versions provide 2D address mapping, which is sufficient for most applications. Note that the IL does not yet support images with non-identity coordinate mappings in the z dimension. See also mmmmaaaappppTTTTooooSSSSoooouuuurrrrcccceeee(((()))), mmmmaaaappppFFFFrrrroooommmmIIIInnnnppppuuuutttt(((()))) and the ilView man page. PPPPaaaaggggeeee 22228888 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) mmmmaaaappppSSSSiiiizzzzeeee(((()))) void mapSize(ilImage* img, iflOrientation fromOri, int& x, int& y, iflOrientation workOri) Transposes the _x and _y size as needed, based on _f_r_o_m_O_r_i and _w_o_r_k_O_r_i. If _w_o_r_k_O_r_i is 0, then the image's orientation is used. mmmmaaaappppOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(((()))) iflOrientation ilMapOrientation(ilImage *img, int flipX, int flipY, int transXY) The function returns the orientation that results from applying the flips and transpose requested to the image's orientation. If _f_l_i_p_X is TRUE, the _x dimension is flipped. If _f_l_i_p_Y is TRUE, the _y dimension is flipped. If _t_r_a_n_s_X_Y is TRUE, the _x and _y dimensions are transposed. mmmmaaaappppTTTTiiiilllleeee(((()))) void ilMapTile(ilImage *img, iflOrientation fromOri, iflTile2Dint *tile, iflOrientation workOri) void ilMapTileFloat(ilImage *img, iflOrientation fromOri, iflTile2Dfloat *tile, iflOrientation workOri) void ilMapTileFlipTrans(ilImage *img, iflOrientation fromOri, iflTile2Dint *tile, iflFlip *flip, int *transXY, iflOrientation workOri) The tile referenced by _t_i_l_e is mapped from orientation _f_r_o_m_O_r_i to the orientation _w_o_r_k_O_r_i. If _w_o_r_k_O_r_i is 0, the orientation of the image is used instead. The origin and size members of _t_i_l_e are recomputed to reflect this mapping. The value returned in the iflFlip enumerated type, _f_l_i_p indicates whether the _x or the _y axis, or both, had to be flipped to effect the mapping. If no flipping was required, then _i_f_l_N_o_F_l_i_p is returned. If the _x or _y axis was flipped, _i_f_l_X_F_l_i_p or _i_f_l_Y_F_l_i_p is returned. If both axes were flipped, (_i_f_l_X_F_l_i_p | _i_f_l_Y_F_l_i_p) is returned. If, to effect the mapping, the x and y axes had to be interchanged (that is, the new x origin and size are the old y origin and size and the converse is true), then a 1 is returned in _t_r_a_n_s_X_Y; otherwise _t_r_a_n_s_X_Y is 0. mmmmaaaappppTTTTooooIIIInnnnppppuuuutttt(((()))) ilStatus ilMapToInput3D(ilImage *obj, float* x, float* y, float* z, float u, float v, float w, int idx) ilStatus ilMapToInput2D(ilImage *obj, float* x, float* y, float u, float v, int idx) ilStatus ilMapToInput(ilImage *obj, iflXYfloat* xy, const iflXYfloat* uv, int idx) PPPPaaaaggggeeee 22229999 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) Maps a point, (_u,_v,_w), in this image's output coordinate space to the _i_d_x'th input image's output coordinate space and returns the result in (_x,_y,_z). This virtual function's default implementation assumes the identity mapping. It can be overridden in derived classes (like ilWarpImg) to take into account any address manipulations that an operator can perform. The overloaded versions provide 2D address mapping, which is sufficient for most applications. Note that the IL does not yet support images with non-identity coordinate mappings in the z dimension, and all points are defined in the orientation of this image. See also mmmmaaaappppTTTTooooSSSSoooouuuurrrrcccceeee(((()))), mmmmaaaappppFFFFrrrroooommmmIIIInnnnppppuuuutttt(((()))). mmmmaaaappppTTTTooooSSSSoooouuuurrrrcccceeee(((()))) ilStatus ilMapToSource3D(ilImage *obj, float* x, float* y, float* z, float u, float v, float w) ilStatus ilMapToSource2D(ilImage *obj, float* x, float* y, float u, float v) ilStatus ilMapToSource(ilImage *obj, iflXYfloat* src, const iflXYfloat* self) Maps a point, (_u,_v,_w), in this image's output coordinate space to the ultimate source image's input coordinate space and returns the result in (_x,_y,_z). All coordinates are defined in this image's orientation. One possible use for this is to find the source image coordinates of a screen location in a zoomed and rotated image. The ilView function, ggggeeeettttLLLLoooocccc(((()))), uses this function to accomplish this task. The overloaded versions provide 2D address mapping, which is sufficient for most applications. Note that the IL does not yet support images with non-identity coordinate mappings in the z dimension. See also mmmmaaaappppFFFFrrrroooommmmSSSSoooouuuurrrrcccceeee(((()))), mmmmaaaappppTTTTooooIIIInnnnppppuuuutttt(((()))) and the ilView man page. mmmmaaaappppXXXXYYYY(((()))) void ilMapXY(ilImage *img, iflOrientation fromOri, int *x, int *y, iflOrientation workOri) void ilMapXYFloat(ilImage *img, iflOrientation fromOri, float *x, float *y, iflOrientation workOri) void ilMapXYSign(ilImage *img, iflOrientation fromOri, float *x, float *y, iflOrientation workOri) The (x,y) pair of values referenced by _x and _y is mapped from orientation _f_r_o_m_O_r_i to the orientation _w_o_r_k_O_r_i. If _w_o_r_k_O_r_i is 0, the orientation of the image is used instead. In the _i_l_M_a_p_X_Y_S_i_g_n function, if a flip in the _x or _y dimensions is required to transform between the two orienations, the _x and _y values are negated accordingly. If a transpose is required, the _x and _y values are swapped. PPPPaaaaggggeeee 33330000 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) qqqqCCCCooooppppyyyyTTTTiiiilllleeeeCCCCffffgggg(((()))) ilStatus ilQCopyTileCfg(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, ilImage* other, int ox, int oy, int oz, const ilConfig* config=NULL, ilMpManager** pMgr=NULL) This virtual function should be defined by derived classes to queue a request to copy a tile from the _o_t_h_e_r image to this image object. The tile is copied to location _x, _y, _z in this image; the tile size is specified by _n_x, _n_y, _n_z. The source tile is at location _o_x, _o_y, _o_z in the _o_t_h_e_r image. The _c_o_n_f_i_g parameter may be used to specify a channel list and/or offset (the other fields are ignored). If the _o_t_h_e_r image has a different data type or order than this image, then the data is converted as it is copied. If the two image's color models are different, a color converter is chained onto the _o_t_h_e_r image UNLESS a channel list or offset is specified with _c_o_n_f_i_g; the channel re-ordering will be presumed to resolve any color model difference. The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a dependent node. The MP manager for this queued operation will be returned via the _p_M_g_r parameter (if not NULL) and can then used to wait for completion, obtain a status code, and/or abort. For more information on MP synchronization, see the ilMpManager man page. qqqqFFFFiiiillllllllTTTTiiiilllleeee3333DDDD(((()))) ilStatus ilQFillTile3D(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, const void* data, const ilConfig* config, const iflTile3Dint* fillMask, ilMpManager** pMgr); This virtual function should be defined by derived classes to queue a request to fill a tile at location _x, _y, _z of size _n_x, _n_y _n_z with a constant pixel value, defined by _d_a_t_a. The ilConfig object, _c_o_n_f_i_g, (if not NULL) can specify a data type and order for the fill value as well as a channel list or offset. If _c_o_n_f_i_g specifies an orientation, it is used to map the tile coordinates to the image's orientation. The _f_i_l_l_M_a_s_k (if not NULL) defines a region within the fill area that is not to be filled; it should be specified in the same orientation as the tile. The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a dependent node. The MP manager for this queued operation will be returned via the _p_M_g_r parameter (if not NULL) and can then used to wait for completion, obtain a status code, and/or abort. For more information on MP synchronization, see the ilMpManager man page. PPPPaaaaggggeeee 33331111 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) qqqqFFFFiiiillllllllTTTTiiiilllleeeeRRRRGGGGBBBB(((()))) ilStatus qFillTileRGB(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, float red, float green, float blue, const iflTile3Dint* fillMask, iflOrientation orientation, ilMpManager** pMgr); This virtual function should be defined to queue a fill tile request in a manner similar to iiiillllQQQQFFFFiiiillllllllTTTTiiiilllleeee3333DDDD(), except that the fill value is specified with _r_e_d, _g_r_e_e_n, _b_l_u_e pixel components. The _o_r_i_e_n_t_a_t_i_o_n (if not zero) is used to map the tile and mask coordinates to the image's orientation. qqqqGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(((()))) ilStatus ilQGetSubTile3D(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, void*& data, int dx, int dy, int dz, int dnx, int dny, int dnz, const ilConfig* config, ilMpManager** pMgr); This virtual function should be defined by derived classes to queue a read request for an arbitrary rectangular tile of data. The data should be returned in the buffer pointed to by _d_a_t_a. The source tile origin is specified by _x, _y, _z, and the tile size is specified by _n_x, _n_y, _n_z. The destination buffer origin _d_x, _d_y, _d_z and size _d_n_x, _d_n_y, _d_n_z may be different from the source tile; in this case, the source tile will be properly integrated into the destination buffer. The ilConfig object, _c_o_n_f_i_g, may be used to specify the data type, order, number of channels and channel order desired for the buffer. If _c_o_n_f_i_g is NULL then no conversion is performed. Otherwise, if the configuration specifies attributes different from those of the image, then the data is converted as it is copied into the buffer. The configuration may also include a channel list; it should have as many entries as there are channels in the buffer. A -1 means no data is written for that channel. For example, if this image has four channels and the number of channels in _c_o_n_f_i_g is 3 and the channel list is (1, -1, 3), then channels 1 and 3 of this image are read into channels 0 and 2 of the buffer in the data type and order specified in _c_o_n_f_i_g. Channel 1 in the buffer remains unchanged. See also the ilConfig man page. The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a dependent node. The MP manager for this queued operation will be returned via the _p_M_g_r parameter (if not NULL) and can then used to wait for completion, obtain a status code, and/or abort. For more information on MP synchronization, see the ilMpManager man page. PPPPaaaaggggeeee 33332222 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) qqqqGGGGeeeettttTTTTiiiilllleeee3333DDDD(((()))) ilStatus ilQGetTile3D(ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, void*& data, const ilConfig* config, ilMpManager** pMgr) This function calls iiiillllQQQQGGGGeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() with the destination tile position and size equal to that of the source tile. qqqqLLLLoooocccckkkkPPPPaaaaggggeeeeSSSSeeeetttt(((()))) ilStatus ilImageQLockPageSet(ilImage *obj, ilMpNode* parent, ilLockRequest* set, int mode, int count, ilMpManager** pMgr, ilCallback* perPageCb) This virtual function should be defined by derived classes to queue a request to lock pages in memory. The _s_e_t parameter is a pointer to an array of _c_o_u_n_t ilLockRequest structures: _s_t_r_u_c_t _i_l_L_o_c_k_R_e_q_u_e_s_t : _p_u_b_l_i_c _i_l_X_Y_Z_C_S_i_n_t { _i_l_S_t_a_t_u_s _s_t_a_t_u_s; _i_l_P_a_g_e* _p_a_g_e; _v_o_i_d _i_n_i_t(_i_n_t _X, _i_n_t _Y, _i_n_t _Z, _i_n_t _C); }; Each ilLockRequest structure specifies a request for a pointer to the page containing the pixel _X, _Y, _Z, _C. After the lock request completes each of the _s_t_a_t_u_s codes will be filled in and _p_a_g_e will point at the page containing the requested pixel. If _s_t_a_t_u_s is not ilOKAY or _X, _Y, _Z, _C references an invalid page, _p_a_g_e will be NULL. The _m_o_d_e parameter is a logical OR of the following mode values: _n_a_m_e _b_i_t_s _m_e_a_n_i_n_g _________________________________________________________ ilLMpriority 0x0ff cache priority: 0(low) -> 7(high) ilLMread 0x100 read access ilLMwrite 0x200 write access (mark dirty) ilLMseek 0x400 load into cache without locking ilLMfail 0x800 succeed only if resident ilLMforceMP 0x1000 force MP manager to be created If _m_o_d_e includes ilLMfail, then the status will be set to ilNOTRESIDENT if the page is not resident in cache, instead of forcing the page to be made resident. See the header file <_i_l/_i_l_E_r_r_o_r._h> for other status values. PPPPaaaaggggeeee 33333333 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) In the default implementation in the ilImage base class, copies of pages are returned in locally allocated memory. Subsequent calls to lock the same pages will return new copies. This default implementation ignores the _m_o_d_e parameter. Some derived classes provide more interesting implementations which manage shared cache storage, etc. One example is ilMemCacheImg. The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a dependent node. The MP manager for this queued operation will be returned via the _p_M_g_r parameter (if not NULL) and can then used to wait for completion, obtain a status code, and/or abort. For more information on MP synchronization, see the ilMpManager man page. Alternatively (or in addition), an ilPage callback, _p_e_r_P_a_g_e_C_b, can be specified; if not NULL, it will be invoked as each page is locked (see the ilPage man page for info on how to declare a paging callback). qqqqSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(((()))) ilStatus ilImageQSetSubTile3D(ilImage *obj, ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, const void* data, int dx, int dy, int dz, int dnx, int dny, int dnz, const ilConfig* config, ilMpManager** pMgr) This virtual function should be defined by derived classes to queue a request to write an arbitrary tile of data taken from the buffer pointed to by _d_a_t_a. The image tile origin is specified by _x, _y, _z, and the tile size is specified by _n_x, _n_y, _n_z. The source buffer's origin _d_x, _d_y, _d_z and size _d_n_x, _d_n_y, _d_n_z may be different from the image tile; in this case, only the intersection of the two tiles is copied. The ilConfig object, _c_o_n_f_i_g, may be used to specify the data type, order, color model, number of channels and channel order of the buffer. If _c_o_n_f_i_g is NULL then no conversion is performed. Otherwise, if the configuration specifies attributes different from those of the image, then the data is converted as it is written to the image. The configuration may also include a channel list; it should have as many entries as there are channels in the buffer. A -1 means no data is written for that channel. For example, if this image has four channels and the number of channels in _c_o_n_f_i_g is 3 and the channel list is (1, -1, 3), then channels 1 and 3 of this image are read into channels 0 and 2 of the buffer in the data type and order specified in _c_o_n_f_i_g. Channel 1 in the buffer remains unchanged. See also the ilConfig man page. PPPPaaaaggggeeee 33334444 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) The _p_a_r_e_n_t MP node (if not NULL) will have this operation added as a dependent node. The MP manager for this queued operation will be returned via the _p_M_g_r parameter (if not NULL) and can then used to wait for completion, obtain a status code, and/or abort. For more information on MP synchronization, see the ilMpManager man page. This is a virtual function and should be defined by derived classes. See also sssseeeettttTTTTiiiilllleeee(), and iiiillllGGGGeeeettttCCCCoooonnnnffffiiiigggg(). qqqqSSSSeeeettttTTTTiiiilllleeee3333DDDD(((()))) ilStatus ilImageQSetTile3D(ilImage *obj, ilMpNode* parent, int x, int y, int z, int nx, int ny, int nz, void* data, const ilConfig* config, ilMpManager** pMgr) This function is a call-through to iiiillllQQQQSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() with the buffer tile position and size equal to the image tile position and size. rrrreeeemmmmoooovvvveeeeIIIInnnnppppuuuutttt(((()))) ilStatus ilRemoveInput(ilImage *img, int idx) Removes the image at index _i_d_x from the input (parent) list. If successful, ilOKAY is returned. The default index is 0. sssseeeettttCCCCoooolllloooorrrrmmmmaaaapppp(((()))) ilStatus ilSetColormap(ilImage *img, iflColormap *cmap) Sets the image's color map to the given iflColormap. If successful, ilOKAY is returned. See also iiiillllGGGGeeeettttCCCCoooolllloooorrrrmmmmaaaapppp() and iiiillllGGGGeeeettttCCCCoooolllloooorrrrMMMMaaaappppPPPPttttrrrr() and iflColormap. sssseeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(((()))) ilStatus ilSetColorModel(ilImage *img, iflColorModel c) Sets the image's color model to the enumerated type, _i_f_l_C_o_l_o_r_M_o_d_e_l, specified by _c. If successful, ilOKAY is returned. See also iiiillllGGGGeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(). PPPPaaaaggggeeee 33335555 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) sssseeeettttCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn(((()))) ilStatus ilSetCompression(ilImage *img, iflCompression c) Sets the image's compression scheme to the enumerated type, _i_f_l_C_o_m_p_r_e_s_s_i_o_n, specified by _c. If successful, ilOKAY is returned. See also iiiillllGGGGeeeettttCCCCoooommmmpppprrrreeeessssssssiiiioooonnnn(). sssseeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(((()))) ilStatus ilSetOrientation(ilImage *img, iflOrientation spc) Sets the image's orientation to the enumerated type, _i_f_l_O_r_i_e_n_t_a_t_i_o_n, specified by _s_p_c. This parameter determines whether the image origin is, for example, the upper left corner or the lower left corner. See also iiiillllGGGGeeeettttOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn(). sssseeeettttCCCCssssiiiizzzzeeee(((()))) ilStatus ilSetCsize(ilImage *img, int nc) ilStatus ilSetNumChans(ilImage *img, int nc) Sets the number of channels in the image. Each pixel has _n_c channels or components. Returns ilOKAY upon successful completion. sssseeeettttDDDDaaaattttaaaaTTTTyyyyppppeeee(((()))) ilStatus ilSetDataType(ilImage *img, iflDataType dtype) Sets the image data type to the enumerated type, _i_f_l_D_a_t_a_T_y_p_e, specified by _d_t_y_p_e. Returns ilOKAY upon successful completion. sssseeeettttFFFFiiiillllllll(((()))) ilStatus ilSetFill(ilImage *img, iflPixel *pixel) Sets the image's fill value data member to the values in _p_i_x_e_l. When iiiillllGGGGeeeettttTTTTiiiilllleeee() or iiiillllCCCCooooppppyyyyTTTTiiiilllleeee() try to access pixels that are beyond the image's edge, those pixels are set to the fill value. The iflPixel type is defined in its header file as consisting of an iflDataType that defines the data type of the image's pixels, an iiiinnnntttt specifying the number of channels of data, and a pointer to the actual pixel data. See also iiiillllGGGGeeeettttFFFFiiiillllllll() and iiiillllCCCClllliiiippppTTTTiiiilllleeee(). PPPPaaaaggggeeee 33336666 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) sssseeeettttFFFFiiiillllllllRRRRGGGGBBBB(((()))) ilStatus ilSetFillRGB(ilImage *img, float red, float green, float blue) Sets the image fill value to a pixel whose elements will be interpreted as the color indicated by _r_e_d, _g_r_e_e_n and _b_l_u_e. The values for the color triplet should be in the range from zero to one. See also iiiillllSSSSeeeettttFFFFiiiillllllll(). sssseeeettttFFFFiiiillllllllVVVVaaaalllluuuueeee(((()))) ilStatus ilSetFillValue(ilImage *img, double val, int c) Sets the image fill value for channel _c to _v_a_l. See also iiiillllSSSSeeeettttFFFFiiiillllllll(). sssseeeettttHHHHwwwwEEEEnnnnaaaabbbblllleeee(((()))) void ilSetHwEnable(ilImage *obj, ilHwAccelEnable enable) This function enables or disables hardware acceleration for this image object. If acceleration is successfully enabled, the image will derive a performance improvement by using the installed graphics hardware of the system. See the man page for _i_l_H_w_A_c_c_e_l_e_r_a_t_e. sssseeeettttIIIInnnnppppuuuutttt(((()))) ilStatus ilSetInput(ilImage *img, ilImage *inimg, int idx) Inserts the image _i_n_i_m_g into the input (parent) list at index _i_d_x. Returns ilOKAY upon successful completion. See also iiiillllAAAAddddddddIIIInnnnppppuuuutttt(). sssseeeettttMMMMaaaaxxxxCCCCoooolllloooorrrrmmmmaaaappppLLLLeeeevvvveeeellllssss(((()))) void ilSetMaxColormapLevels(int maxLevels) This function sets the maximum number of color levels for optimal color map generation for this image object. This value may be used to generate a color map when displaying the image if an explicit color map is not supplied. PPPPaaaaggggeeee 33337777 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) sssseeeettttMMMMaaaaxxxxVVVVaaaalllluuuueeee(((()))) ilStatus ilSetMaxValue(ilImage *img, double val) Sets the maximum allowable value for all channels. sssseeeettttMMMMiiiinnnnVVVVaaaalllluuuueeee(((()))) ilStatus ilSetMinValue(ilImage *img, double val) Sets the minimum allowable value for all channels. sssseeeettttOOOOrrrrddddeeeerrrr(((()))) ilStatus ilSetOrder(ilImage *img, iflOrder order) Sets the pixel channel order of this image to _o_r_d_e_r. The enumerated type, _i_f_l_O_r_d_e_r can be one of _i_l_I_n_t_e_r_l_e_a_v_e_d, _i_l_S_e_q_u_e_n_t_i_a_l or _i_l_S_e_p_a_r_a_t_e. Returns ilOKAY upon successful completion. See also iiiillllGGGGeeeettttOOOOrrrrddddeeeerrrr(). sssseeeettttPPPPaaaaggggeeeeBBBBoooorrrrddddeeeerrrr(((()))) ilStatus ilSetPageBorderStruct(ilImage *img, const iflXYZint *border) ilStatus ilSetPageBorder(ilImage *img, int nx, int ny, int nz) Sets the current page border size to _n_x, _n_y, _n_z. sssseeeettttPPPPaaaaggggeeeeSSSSiiiizzzzeeee(((()))) ilStatus ilSetPageSizeStruct(ilImage *img, const iflSize *pageSize) ilStatus ilSetPageSize(ilImage *img, int nx, int ny, int nz, int nc) ilStatus ilSetPageSizeXY(ilImage *img, int nx, int ny) ilStatus ilSetPageSizeZ(int nz) ilStatus ilSetPageSizeC(int nc) Functions to set the page size. For each of the versions of this function, the x size is set to _n_x, the y size is set to _n_y, the z size is set to _n_z, and the number of channels is set to _n_c. See also ilCacheImg. PPPPaaaaggggeeee 33338888 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) sssseeeettttPPPPiiiixxxxeeeellll(((()))) ilStatus ilSetPixel(ilImage *img, int x, int y, iflPixel *pix) This function is the 2-D version of iiiillllSSSSeeeettttPPPPiiiixxxxeeeellll3333DDDD(). It calls iiiillllSSSSeeeettttPPPPiiiixxxxeeeellll3333DDDD() with _z set to 0. sssseeeettttPPPPiiiixxxxeeeellll3333DDDD(((()))) ilStatus ilSetPixel3D(ilImage *img, int x, int y, int z, iflPixel *pix) Writes the iflPixel specified by _p_i_x to the location specified by _x, _y, and _z. An iflPixel specifies the channel data type, the number of channels per pixel and a pointer to the pixel data. This function calls iiiillllSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() with the tile size _n_x, _n_y and _n_z set to 1. Returns ilOKAY upon successful completion. See also iiiillllGGGGeeeettttPPPPiiiixxxxeeeellll3333DDDD() and iiiillllSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD(), iiiillllSSSSeeeettttPPPPiiiixxxxeeeellll(). sssseeeettttPPPPrrrriiiioooorrrriiiittttyyyy(((()))) void ilSetPriority(ilImage *img, int pri) This function sets the cache priority of this image, the default is zero (the lowest priority). By setting a larger value (up to the maximum of 7), the likelihood that this image's pages will stay in the global cache is increased. sssseeeettttSSSSccccaaaalllleeeeMMMMiiiinnnnMMMMaaaaxxxx(((()))) ilStatus ilSetScaleMinMax(ilImage *img, double min, double max) Sets the scale minimum and maximum to _m_i_n and _m_a_x. The scale minimum and maximum are used during color conversion and display. By default, the scale minimum and maximum track the image minimum and maximum values. sssseeeettttSSSSccccaaaalllleeeeTTTTyyyyppppeeee(((()))) ilStatus ilSetScaleType(ilImage *img, iflDataType type) Sets the scale minimum and maximum to the minimum and maximum values of the data type passed in _t_y_p_e. If _t_y_p_e is defaulted, then this object's data type is used. The scale minimum and maximum are used during color conversion. By default, the scale minimum and maximum track the image minimum and maximum values. PPPPaaaaggggeeee 33339999 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) sssseeeettttSSSSiiiizzzzeeee(((()))) ilStatus ilSetSize(ilImage *img, iflSize *size) ilStatus ilSetXYsize(ilImage *img, int nx, int ny) Sets the image size to the value referenced by _s_i_z_e. The second versions allows just the _x and _y size to be set. Returns ilOKAY upon successful completion. See also iiiillllGGGGeeeettttSSSSiiiizzzzeeee(). sssseeeettttTTTTiiiilllleeee(((()))) ilStatus ilSetTile(ilImage *img, int x, int y, int nx, int ny, const void *data, ilConfig *config) ilStatus ilSetSubTile(ilImage *img, int x, int y, int nx, int ny, const void *data, int dx, int dy, int dnx, int dny, ilConfig *config) ilStatus ilSetSubTile3D(ilImage *img, int x, int y, int z, int nx, int ny, int nz, const void *data, int dx, int dy, int dz, int dnx, int dny, int dnz, ilConfig *config) ilStatus ilSetTile3D(ilImage *img, int x, int y, int z, int nx, int ny, int nz, const void *data, ilConfig *config) These functions queue a tile write request with iiiillllQQQQSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and wait for it to complete. The source tile origin is specified by _x, _y, _z, and the tile size is specified by _n_x, _n_y, _n_z. The 2D versions, iiiillllSSSSeeeettttTTTTiiiilllleeee() and iiiillllSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee(), call the corresponding 3D routine with _z set to zero and _n_z set to one. iiiillllSSSSeeeettttTTTTiiiilllleeee() and iiiillllSSSSeeeettttTTTTiiiilllleeee3333DDDD() assume that the source buffer has the same offset and size as the request; iiiillllSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee() and iiiillllSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() allow the source buffer to have a different position and size, specified by _d_x, _d_y, _d_n_x, and _d_n_y (and _d_z and _d_n_z for the 3D version.) See also iiiillllQQQQSSSSeeeettttTTTTiiiilllleeee3333DDDD(), iiiillllQQQQSSSSeeeettttSSSSuuuubbbbTTTTiiiilllleeee3333DDDD() and iiiillllGGGGeeeettttCCCCoooonnnnffffiiiigggg(). sssseeeettttWWWWrrrriiiittttaaaabbbblllleeee(((()))) void setWritable(int enable=TRUE) _p_r_o_t_e_c_t_e_d This function will enable or disable write access to this image. If _e_n_a_b_l_e is TRUE, then the image will be writable; if FALSE, then the image is not writable. PPPPaaaaggggeeee 44440000 iiiillllIIIImmmmaaaaggggeeee((((3333)))) IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiillllIIIImmmmaaaaggggeeee((((3333)))) sssseeeettttXXXXssssiiiizzzzeeee(((()))) ilStatus ilSetXsize(ilImage *img, int nx) Sets the size of the image in the _x-dimension, measured in pixels. Returns ilOKAY upon successful completion. See special notes on IL image memory order conventions and orientations in the description of ilGetXsize(). sssseeeettttYYYYssssiiiizzzzeeee(((()))) ilStatus ilSetYsize(ilImage *img, int ny) Sets the size of the image in the _y-dimension, measured in pixels. Returns ilOKAY upon successful completion. sssseeeettttZZZZssssiiiizzzzeeee(((()))) ilStatus ilSetZsize(ilImage *img, int nz) Sets the size of the image in the _z-dimension, measured in pixels. Returns ilOKAY upon successful completion. IIIINNNNHHHHEEEERRRRIIIITTTTEEEEDDDD MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNNSSSS IIIInnnnhhhheeeerrrriiiitttteeeedddd ffffrrrroooommmm iiiillllLLLLiiiinnnnkkkk ilLinkClearSet(), ilLinkClearStatus(), ilLinkGetDescription(), ilLinkGetDirectParent(), ilLinkGetDisabledIndex(), ilLinkGetFloatProp(), ilLinkGetGenerationID(), ilLinkGetIntProp(), ilLinkGetNumChildren(), ilLinkGetNumParents(), ilLinkGetParent(), ilLinkGetPtrProp(), ilLinkGetRelatedChild(), ilLinkGetRelatedDelete(), ilLinkGetRelatedType(), ilLinkGetStatus(), ilLinkIsAllowed(), ilLinkIsAltered(), ilLinkIsEnabled(), ilLinkIsRelated(), ilLinkIsSet(), ilLinkRemoveParent(), ilLinkRemoveProp(), ilLinkSetDescription(), ilLinkSetDisabledIndex(), ilLinkSetEnabled(), ilLinkSetParent(), ilLinkSetProp(), ilLinkSetRelatedDelete(), ilLinkSetRelatedType() SSSSEEEEEEEE AAAALLLLSSSSOOOO ilCacheImg, ilDisplayImg, ilFileImg, iflColormap, ilMemoryImg, ilOpImg, ilSubImg, _i_l/_i_l_I_m_a_g_e._h, _i_f_l/_i_f_l_D_a_t_a_T_y_p_e_s._h Please refer to the _I_m_a_g_e_V_i_s_i_o_n _L_i_b_r_a_r_y _P_r_o_g_r_a_m_m_i_n_g _G_u_i_d_e for a full description of overall concepts and architecture. NNNNOOOOTTTTEEEESSSS Although the ilImage class contains no pure virtual functions, it should only be used to derive new classes, never directly created as an object. However, a pointer to an ilImage can be declared in order to support polymorphism. PPPPaaaaggggeeee 44441111